package top.wu2020.lazy.ws.chat.infrastructure.entity;

import lombok.Data;
import lombok.experimental.Accessors;
import org.wu.framework.lazy.orm.core.stereotype.LazyTableIndex;
import org.wu.framework.core.stereotype.LayerField;
import org.wu.framework.core.stereotype.LayerField.LayerFieldType;
import org.wu.framework.lazy.orm.core.stereotype.LazyTable;
import org.wu.framework.lazy.orm.core.stereotype.LazyTableField;
import org.wu.framework.lazy.orm.core.stereotype.*;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema;
import java.lang.String;
import java.lang.Integer;
import org.wu.framework.lazy.orm.core.stereotype.LazyTableFieldId;
import java.lang.Long;
import java.lang.Boolean;
/**
 * describe community 
 *
 * @author Jia wei Wu
 * @date 2024/05/24 08:52 晚上
 * @see org.wu.framework.lazy.orm.core.persistence.reverse.lazy.ddd.DefaultDDDLazyInfrastructureEntity 
 **/
@Data
@Accessors(chain = true)
@LazyTable(tableName = "community",schema = "ws_chat",comment = "")
@Schema(title = "community",description = "")
public class CommunityDO {


    /**
     * 
     * 头像
     */
    @Schema(description ="头像",name ="avatarUrl",example = "")
    @LazyTableField(name="avatar_url",comment="头像",notNull=true,columnType="varchar(255)")
    private String avatarUrl;

    /**
     * 
     * 评论数量
     */
    @Schema(description ="评论数量",name ="commentNum",example = "")
    @LazyTableField(name="comment_num",comment="评论数量",notNull=true,defaultValue="'0'",upsertStrategy = LazyFieldStrategy.NEVER,columnType="int")
    private Integer commentNum;

    /**
     * 
     * 内容
     */
    @Schema(description ="内容",name ="content",example = "")
    @LazyTableField(name="content",comment="内容",notNull=true,columnType="longtext")
    private String content;

    /**
     * 
     * 创建时间
     */
    @Schema(description ="创建时间",name ="createDateUtc",example = "")
    @LazyTableField(name="create_date_utc",comment="创建时间",notNull=true,columnType="varchar(255)")
    private String createDateUtc;

    /**
     * 
     * Id
     */
    @Schema(description ="Id",name ="id",example = "")
    @LazyTableFieldId(name = "id", comment = "Id")
    private Long id;

    /**
     * 
     * 图片列表
     */
    @Schema(description ="图片列表",name ="imgList",example = "")
    @LazyTableField(name="img_list",comment="图片列表",columnType="varchar(1000)")
    private String imgList;

    /**
     * 
     * 是否关注
     */
    @Schema(description ="是否关注",name ="isFollow",example = "")
    @LazyTableField(name="is_follow",comment="是否关注",notNull=true,defaultValue="'0'",upsertStrategy = LazyFieldStrategy.NEVER,columnType="tinyint(1)")
    private Boolean isFollow;

    /**
     * 
     * 是否喜爱
     */
    @Schema(description ="是否喜爱",name ="isLike",example = "")
    @LazyTableField(name="is_like",comment="是否喜爱",notNull=true,defaultValue="'0'",upsertStrategy = LazyFieldStrategy.NEVER,columnType="tinyint(1)")
    private Boolean isLike;

    /**
     * 
     * 喜爱数量
     */
    @Schema(description ="喜爱数量",name ="likeNum",example = "")
    @LazyTableField(name="like_num",comment="喜爱数量",notNull=true,defaultValue="'0'",upsertStrategy = LazyFieldStrategy.NEVER,columnType="int")
    private Integer likeNum;

    /**
     * 
     * 发布者Id
     */
    @Schema(description ="发布者Id",name ="publishId",example = "")
    @LazyTableField(name="publish_id",comment="发布者Id",notNull=true,columnType="bigint")
    private Long publishId;

    /**
     * 
     * 发布用户名称
     */
    @Schema(description ="发布用户名称",name ="publishName",example = "")
    @LazyTableField(name="publish_name",comment="发布用户名称",notNull=true,columnType="varchar(255)")
    private String publishName;

    /**
     * 
     * 分享数量
     */
    @Schema(description ="分享数量",name ="shareCount",example = "")
    @LazyTableField(name="share_count",comment="分享数量",notNull=true,defaultValue="'0'",upsertStrategy = LazyFieldStrategy.NEVER,columnType="int")
    private Integer shareCount;

    /**
     * 
     * 标题
     */
    @Schema(description ="标题",name ="title",example = "")
    @LazyTableField(name="title",comment="标题",columnType="varchar(255)")
    private String title;

    /**
     * 
     * 转发数量
     */
    @Schema(description ="转发数量",name ="transmitCount",example = "")
    @LazyTableField(name="transmit_count",comment="转发数量",notNull=true,defaultValue="'0'",upsertStrategy = LazyFieldStrategy.NEVER,columnType="int")
    private Integer transmitCount;

    /**
     * 
     * 类型
     */
    @Schema(description ="类型",name ="type",example = "")
    @LazyTableField(name="type",comment="类型",columnType="int")
    private Integer type;

    /**
     * 
     * 关注数量
     */
    @Schema(description ="关注数量",name ="watchCount",example = "")
    @LazyTableField(name="watch_count",comment="关注数量",notNull=true,defaultValue="'0'",upsertStrategy = LazyFieldStrategy.NEVER,columnType="int")
    private Integer watchCount;

}